# 导入所需的SQLAlchemy组件
from sqlalchemy import Column, Integer, String , Boolean , ForeignKey
# 导入Base类从database模块
from database import Base

# 定义User模型类，继承自Base
class User(Base):
    # 指定数据库表名为users
    __tablename__ = 'users'

    # 定义id字段，设置为主键和索引
    id = Column(Integer, primary_key=True, index=True)
    # 定义email字段，设置为唯一且带索引
    email = Column(String, unique=True, index=True)
    # 定义username字段，设置为唯一且带索引
    username = Column(String, unique=True, index=True)
    # 定义first_name字段
    first_name = Column(String)
    # 定义last_name字段
    last_name = Column(String)
    # 定义hashed_password字段，存储加密后的密码
    hashed_password = Column(String)
    # 定义is_active字段，默认值为True
    is_active = Column(Boolean, default=True)
    # 定义role字段，用于存储用户角色
    role = Column(String)


# 定义Todos模型类，继承自Base
class Todos(Base):
    # 指定数据库表名为todos
    __tablename__ = 'todos'
    
    # 定义id字段，设置为主键和索引
    id = Column(Integer, primary_key=True, index=True)
    # 定义title字段，存储待办事项标题
    title = Column(String)
    # 定义description字段，存储待办事项描述
    description = Column(String)
    # 定义priority字段，存储优先级
    priority = Column(Integer)
    # 定义complete字段，表示是否完成，默认为False
    complete = Column(Boolean, default=False)
    # 定义owner_id字段，外键关联到users表的id字段
    owner_id = Column(Integer,ForeignKey('users.id'))